A NAND flash storage is typically divided into storage blocks. These storage blocks are further divided into memory pages. Although data may be read from any memory page of a storage block in a random access fashion, writing data to a memory page of the storage block typically requires a program-erase cycle. In the program-erase cycle, all data bits in the storage block are set to a value of one in an erase operation. Selected bits in the storage block are then changed from a value of one to a value of zero in a program operation. In this way, the data is written into the memory page of the storage block. Because program-erase cycles cause wear to a storage block, a probability of data bit errors in a memory page of the storage block increases as program-erase cycles are performed on the storage block. Moreover, the storage block has a lifetime which is typically determined by the number of program-erase cycles performed on the storage block. The number of program-erase cycles that may be performed during the lifetime of the storage block is sometimes referred to as the write endurance of the storage block.
In addition to wear caused to storage blocks by program-erase cycles, an individual memory page of a storage block may wear as a result of read operations performed on the storage block. As a result, data read from the memory page has a higher probability of data bit errors as the number of read operations performed on the storage block increases. Moreover, the memory page has a lifetime which is typically determined by the number of read operations performed on the storage block. The number of read operations that may be performed during the lifetime of the memory page is sometime referred to as the read endurance of the storage block.
In addition to wear caused by read operations performed on a memory page during the lifetime of the memory page, a memory page is susceptible to read disturbance occurring between program-erase cycles performed on the storage block containing the memory page. Read disturbance occurs when one or more data bits in data stored in a memory page of a storage block become corrupted as a result of a read operation performed on the memory block or an adjacent memory page. Typically, read disturbance occurs when one or more data bits in the data inadvertently change from a value of one to a value of zero when a read operation is performed on a nearby memory page. Each of the data bits corrupted as a result of the read disturbance of the memory page is a data bit error in the data. Moreover, the data bits usually remain corrupted until the memory page is reprogrammed in a subsequent program-erase cycle. As a result, the probability of data bit errors of a memory page increases temporarily as read operations are performed on the storage block between program-erase cycles performed on the storage block.